Not Applicable
Not Applicable
Not Applicable
This invention relates to converting an input data stream having a first sampling rate to an output data stream having a second sampling rate.
Sampling rate conversion is performed when a discrete-time system needs to combine data streams with differing sampling rates. This is a common occurrence in audio and video applications. For example, audio sources may occur at different sampling rates, such as 44.1 kHz (kilohertz) for compact disks (CDs) and 48 kHz for digital audio tape (DAT).
One way of performing sampling rate conversion is to use a combination of up-sampling, filtering, and down-sampling. This can work if the ratio of the two sampling rates equals a rational number. In many cases, however, the two sampling rates are not related by a simple rational number. This occurs frequently when trying to synchronize data streams that are arriving from separate digital networks. For example, in audio applications, it is common to have a discrete-time system operating at 44.1 kHz while its input data stream is arriving at roughly 44.09 kHz with time variations. The receiving portion of the discrete-time system must adjust for these time variations during sampling rate conversion.
One way of performing sampling rate conversions on time-varying data streams uses finite impulse response (FIR) filters and linear weighted interpolation based on neighboring samples.
It is an important object to provide improved sampling rate conversion.
In general, in one aspect, the invention is directed to converting an input signal having a first sampling rate to an output signal having a second sampling rate. The invention features obtaining an intermediate sampling value from the input signal and filtering the intermediate sampling value to obtain the output signal. The intermediate sampling value corresponds to a sample taken at the second sampling rate on a continuous-time representation of the input signal.
This aspect of the invention may include one or more of the following features. Obtaining the intermediate sampling value includes obtaining a coefficient that corresponds to the sample from the continuous-time representation of the input signal and determining the intermediate sampling value based on the coefficient and an impulse value. The impulse value corresponds to the input signal. The coefficient is a value of the continuous-time representation of the input signal taken at the sample. The coefficient is determined from a previous coefficient by multiplying the previous coefficient by a constant. The constant corresponds to a difference between the sample and a previous sample.
Filtering the intermediate sampling value includes adding the intermediate sampling value to a previous value that corresponds to a previous sample taken at the second sampling rate. Filtering is performed by a first order digital filter.
A second intermediate sampling value is obtained from the input signal and the second intermediate sampling value is filtered to obtain the output signal. The second intermediate sampling value corresponds to a second sample taken at the second sampling rate on the continuous-time representation of the input signal. In this case, filtering is performed using a second order digital filter.
One of the first and second sampling rates may be a compact disk sampling rate and the other of the first and second sampling rates may be a digital audio tape sampling rate. The continuous-time representation of the input signal may be a decaying exponential function or a sinusoidal function.